package com.dong.multithreading;

/**
 * Join:
 * 1.join()方法的作用，是等待这个线程结束；
 * --也就是说，t.join()方法阻塞调用此方法的线程(calling thread)进入 TIMED_WAITING 状态，直到线程t完成，此线程再继续；
 * 2.join方法其实还可以提交过期时间，也就是在执行到达预定时间后，执行方式将继续以并行的方式执行。
 * --thread1.join(10);// 表示10ms后，将结束join。
 */
public class Join {

    public static void main(String[] args) throws InterruptedException {
        Thread thread1 = new Thread(new JoinThread());
        Thread thread2 = new Thread(new JoinThread());

        thread1.start();
        thread1.join();
//        thread1.join(100);
        thread2.start();
    }

    static class JoinThread implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                try {
                    System.out.println(Thread.currentThread().getName());
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}